<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    
</body>
</html>
<script>
    // 面试题一：
    // fn() // fn is not a function
    // var fn = function (){
    //     console.log('fn');
    // }
    // fn() // 报错不会执行

    // 面试题二：
    // var aa = 10;
    // aa = function(){
    //     console.log('haha');
    // }
    // function aa(){
    //     console.log('aa');
    // }
    // aa()

    // 面试题三；
    // var aa = 10;
    // function aa(){
    //     console.log('aa');
    // }
    // console.log(typeof aa);
    // aa()

    // 面试题四：难点==》不传不用管
    // function fn(a){
    //     console.log(a);
    //     var a = 3;
    //     console.log(a);
    // }
    // fn()

   // 面试题五：难点==》传了先预解析，在接收实参（实参在预解析后，在代码前）
    // function fn(a){
    //     console.log(a);
    //     var a = 3;
    //     console.log(a);
    // }
    // fn(2)

    // 面试题六：
    // var a = 4;
    // function fn(b){
    //     console.log(a);
    //     var a = 3;
    //     console.log(a);
    // }
    // fn()
    // console.log(a);
    
    // 面试题七：难点：没有var,若果局部没有同名变量， 直接修改全局不管其他的
    // var a = 4;
    // function fn(){
    //     console.log(a);
    //     a = 3;
    //     console.log(a);
    // }
    // fn()
    // console.log(a);

    // 面试题八：难点：形参相当于函数中声明一个变量
    // var a = 4;
    // function fn(a){
    //     console.log(a);
    //     a = 5; // 注：这里的修改的是形参a的值。
    // }
    // fn(a)
    // console.log(a);
    
</script>